﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Dia2Lib;

namespace Kokomo.Mirror.PeFormat.Symbols
{
	public class PublicSymbol : Symbol
	{
		internal PublicSymbol(
			IDiaSymbol symbol
			)
			: base(symbol)
		{
		}

		// TODO: LexicalParent

		/* DispID 9 */
		public uint AddressOffset { get { return this.DiaSymbol.addressOffset; } }
		/* DispID 8 */
		public uint AddressSection { get { return this.DiaSymbol.addressSection; } }
		/* DispID 69 */
		public bool IsInCode { get { return this.DiaSymbol.code != 0; } }
		/* DispID 70 */
		public bool IsFunction { get { return this.DiaSymbol.function != 0; } }
		/* DispID 14 */
		public ulong Length { get { return this.DiaSymbol.length; } }
		/* DispID 7 */
		public LocationType locationType { get { return (LocationType)this.DiaSymbol.locationType; } }
		/* DispID 71 */
		public bool IsManaged { get { return this.DiaSymbol.managed != 0; } }
		/* DispID 72 */
		public bool IsMsil { get { return this.DiaSymbol.msil != 0; } }
		/* DispID 10 */
		public uint RelativeVirtualAddress { get { return this.DiaSymbol.relativeVirtualAddress; } }
	}
}
